package org.example.controller;

import org.example.model.MenuModel;
import org.example.service.SysMenuService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.security.Principal;
import java.util.List;

@RestController
@RequestMapping("/sys-menu")
public class SysMenuController {

    @Resource
    private SysMenuService sysMenuService;

    /**
     * 1.因为在 JwtFilter中我们将 UsernamePasswordAuthenticationToken 这个实例已经设置到 Security的上下文对象中
     *   而这个对象中有用户名，所有可以所有的Controller直接使用 Principal 对象的 getName() 获取到用户名；
     * 2. 这个能力是 spring security提供的
     */
    @GetMapping
    public List<MenuModel> getMenuModel(Principal principal) {

        return sysMenuService.getRouterTree(principal.getName());
    }
}
